http 协议

一、http协议

1.1、简介

HTTP 是一种无状态的协议,无状态就是指浏览器和服务器之前没有一种长连接的关系,比如说浏览器发送了一次请求,服务器接收到之后返回响应到浏览器,到此连接就被关闭了,在服务器端不保留连接的有关信息。

1.2、结构组成

1.2.1、http 请求

请求行 – 请求头 – 请求正文/请求体

请求行格式:<方法><空格><空格>

请求头格式:<字段名> : <字段值>

​ …

​ …

​ …

​ <空行>

​ <消息体>

1.2.2、http 响应

状态行 – 响应头 – 响应正文/响应体

状态行格式:<空格><状态码><空格><响应短语>

消息头格式:<字段名> : <字段值>

​ …

​ …

​ …

​ <空行>

​ <消息体>

1.3、主要头字段

通用头:适用于请求头和响应消息的头字段

Date : 表示请求和响应生成的日期

Pragma : 表示数据是否允许缓存的通信选项

Cache-Control : 控制缓存的相关信息

Transfer-Encoding : 表示消息主体的编码格式

Via : 记录途中经过的代理和网关

请求头:用于表示请求消息的附加信息的头字段

If-Modified-Since : 如果希望仅当数据在某个日期之后有更新时才执行请求,可以在这个字段指定希望的日期。一般来说,这个功能的用途在于判断客户端缓存的数据是否已经过期,如果已经过期则获取新的数据

Referer : 当通过点击超级链接进入下一个页面时,在这里
会记录下上一个页面的 URI

User-Agent : 客户端软件的名称和版本号等相关信息

Accept : 客户端可支持的数据类型(Content-Type), 以MIME 类型来表示

响应头:用于表示响应消息的附加信息的头字段

Server : 服务器程序的名称和版本号等相关信息

Location : 表示信息的准确位置。当请求的 URI 为相对路径时,这个字段用来返回绝对路径

以 chrome 上的为例

一次 get 请求头

1
2
3
4
5
6
7
8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
Host: 193.112.180.154:3000
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Mobile Safari/537.36
本文结束,感谢您的阅读